23

» WarCraft 3 / Вопрос по Jass

Похожие вопросы:

ответ
Чтобы было норм читать, надо хотя бы выделять содержимое каждого блока (типа function/endfunction, if/endif, loop/endloop) табуляцией. Если блок внутри блока, то двойная табуляция, и т. д.
В vJASS и cJASS не стоит использовать одновременно C-подобный и Turing-подобный (стандартный JASS) синтаксис.
А если ты неправильно поставишь пробелы, запятые или кавычки, тебе об этом скажет парсер =)
ответ
Во-первых, что есть "локальный таймер" ? Это таймер записанный в локальную переменную?
Во-вторых, зачем тебе точка, если ты используешь XY ? Работай с ними
В-третьих, да. Использование в течении всей игры одной заранее созданной точки вызывает меньше нагрузки чем постоянно создание и удаление новых (кто-то там доказывал на примере и цифрами что от ремувнутых точке всё равно остаётся шлак в памяти...)
ответ
1)Нужно ли при создании на джассе в конце обнулять/удалять что-то как при создании на ГУИ типо set u = null и т.д.?
Да нужно, но далеко не все. Чекни статьи, там про это расписано подробно.
2)Как видно на скрине юниту даются способности на 10 сек, можно ли в одной строчке это как то написать, а не писать каждый скилл в новой строке? Попытался сделать через , выдало ошибку.
Нет, только по одному. И TriggerSleepAction я бы использовать не стал, вместо них я бы заюзал таймеры.
3)Слышал про при конвертации в текст остаются пару лишних строк в триггере, абсолютно ненужные я удалил(Которые были при создании на ГУИ, скрин 2), нужно ли еще что-то удалять?
Не совсем понял вопрос, уточни о чем ты?

23

» WarCraft 3 / Способность

Похожие вопросы:

ответ
Когда юнит проучивает пассивку, добавляй в группу юнита, который выучил пассивку. Дальше все просто -
Юнит умирает
Киллинг юнит в нашей группе - да
Дайинг юнит не в команде владельца киллинг юнит.
Игрок - адд проперти - 500 золото (овнер оф киллинг юнит)
ответ
скорее всего, он говорит о SetUnitMovespeed ()
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь
ответ
На JASS-е есть функция GetLearnedSkill(), которая выдает rawcode выученного умения. Создаешь переменную типа "целочисленная" с названием SkillCode, потом в начале действий триггера пишешь через Custom Script что-то типо этого:
set udg_SkillCode=GetLearnedSkill()
и затем делаешь какие тебе там нужны сравнения на переменную SkillCode.
ответ
XGM Bot:
Похожие вопросы:

ответ
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ответ
ИИ чтоли не кастует? Сделай триггерный каст, Событие - юнит обнаружил цель в пределах досягаемости, проглотить не в кулдауне и цель неуязвимый враг, пойти и проглотить юнита...
ответ
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
ответ
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
ответ
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.


23

» WarCraft 3 / MdlVis

Похожие вопросы:

ответ
Редактор анимаций - скелет - прикрепить выделенные вершины к кости Head.
А лучше статьи почитай по мдлвизу.
А ещё лучше - сам попытайся разобраться.
ответ
war3.mpq
war3x.mpq
доставать mpq editor
на сайте есть
Даже более пошаговая инструкция:
  1. Открываешь редактор варкрафта
  2. Смотришь в редакторе объектов путь к модели (это надо включить там показать значения переменных или что-то там, тут пусть кто-то уточнит, если нужно, я наизусть не помню, хотя постоянно переключаю, как-то так Units\Creeps\StoneGolem\StoneGolem.mdx)
  3. Закрываешь редактор (а то mpq не откроется)
  4. xgm.guru/p/xm/ladikmpq скачиваешь это, если еще не, распаковываешь
  5. открываешь war3.mpq, ищешь там по пути модель в соответствующих папках
  6. если ее нет, открываешь war3x.mpq и ищешь там
  7. нажимаешь Export
  8. выбираешь куда вынуть
  9. подтверждаешь
все, открываешь папку, куда оно того и там модель и текстура
текстуру можно фотошопить, а модель мдлвисить как душа пожелает
/
инструкция может быть чуть не точной, т. к. сочинялась на ходу
ответ
скорее всего вершины не пересвязал...
ответ
У меня всё работает.
ответ
UrsaBoss:
Крч похоже что программа не коректно работает на виедоус 10 или с wc3 версии 1.29. А там уже и 1.30 не за горами ._.
UP: Необходимые файлы для полной работы Mdlvis я нашел в этом треде.
А вот сами файлы.

23

» WarCraft 3 / Нужно сделать способность

Похожие вопросы:

ответ
  1. В кампании орды за Рекксара медведь призывается без ограничения по времени.
  2. Любая способность призыва, в которой указать количество призываемых юнитов = 0.
ответ
Steal nerves:
Ну в идеале только канал пробивал иммунитет к магии (если понял о чем идет речь). Иначе будет писать "Не удалось натравить заклинание". Если говорим не про АОЕ-шные скилы
есть некоторые скилы, которые накидывают дебаффы или наводят на него (например перст боли, но урон иммунному не наносится. больше свожу к выводу, что это магический урон) ссылка
quq_CCCP, что значит высшая? эта та, которая 6 уровне?
есть в константах
"Баланс: невосприимчивость к магии защищает от высших заклинаний" - Определяет, будет ли невосприимчивость к магии защищать от заклинаний, которые становятся доступны для изучения на 6-м (по умолчанию) уровне. По умолчанию константа равна "Нет".
это нашел в интернете. Похоже не все геройские абилки работают, а только "высшие". Все понял:
Любая высшая способность ( геройская, требуемый уровень выше 1 ).
ответ
Делаешь способность пустышку на основе "Канал", далее делаешь триггер с событием "Юнит начал направлять способность" в условиях ставишь
свою способность, а в действиях условиями на наличие предметов делаешь крафт. Всё что я тут написал - это отсылка к темам которые можно самому найти.

23

» WarCraft 3 / Вопрос по Jass

Похожие вопросы:

ответ
Чтобы было норм читать, надо хотя бы выделять содержимое каждого блока (типа function/endfunction, if/endif, loop/endloop) табуляцией. Если блок внутри блока, то двойная табуляция, и т. д.
В vJASS и cJASS не стоит использовать одновременно C-подобный и Turing-подобный (стандартный JASS) синтаксис.
А если ты неправильно поставишь пробелы, запятые или кавычки, тебе об этом скажет парсер =)
ответ
local real x = GetRandomReal(GetRectMinX(GetPlayableMapRect()), GetRectMaxX(GetPlayableMapRect()))
local real y = GetRandomReal(GetRectMinY(GetPlayableMapRect()), GetRectMaxY(GetPlayableMapRect()))
...
(действия с координатами)
...
Любые действия с локейшном можно переделать под координаты, если не используется z-координата, как сказано выше. Но z-координату используют не только лишь все, мало кто может это делать.
И обнулять ничего не придётся, так как действительное число не утекает.
ответ
Во-первых, что есть "локальный таймер" ? Это таймер записанный в локальную переменную?
Во-вторых, зачем тебе точка, если ты используешь XY ? Работай с ними
В-третьих, да. Использование в течении всей игры одной заранее созданной точки вызывает меньше нагрузки чем постоянно создание и удаление новых (кто-то там доказывал на примере и цифрами что от ремувнутых точке всё равно остаётся шлак в памяти...)
ответ
1)Нужно ли при создании на джассе в конце обнулять/удалять что-то как при создании на ГУИ типо set u = null и т.д.?
Да нужно, но далеко не все. Чекни статьи, там про это расписано подробно.
2)Как видно на скрине юниту даются способности на 10 сек, можно ли в одной строчке это как то написать, а не писать каждый скилл в новой строке? Попытался сделать через , выдало ошибку.
Нет, только по одному. И TriggerSleepAction я бы использовать не стал, вместо них я бы заюзал таймеры.
3)Слышал про при конвертации в текст остаются пару лишних строк в триггере, абсолютно ненужные я удалил(Которые были при создании на ГУИ, скрин 2), нужно ли еще что-то удалять?
Не совсем понял вопрос, уточни о чем ты?

23

» WarCraft 3 / Триггерный автокаст?

Похожие вопросы:

ответ
речь об активных орб-эффектах, я так понимаю? Потому что "нормальные" заклинания ловятся всегда.
Типа копья козы или аркан-орба дестра ты делаешь?
Danil30:
событие - применяет способность
юзай "приводит способность в действие"
ответ
Пассивки в книге заклинаний работают, даже если запретить доступность самой книги для игрока.Так что да.
ответ
8gabriel8, стандартные порталы как раз включаются триггером, так же триггерно им можно назначать области телепорта, так же они не ломают карту путей.
Насчет упираются в здание, карту путей ставь от портала, физ размер в 0.

23

» WarCraft 3 / Вопрос по оптимизации способностей

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
SetUnitPosition довольно тяжелая операци, юзайте SetUnitX\Y в конце полета юзай SetUnitPosition для того чтобы юнит не залетел в непроходимое место.
Фильтр просто ужас, ну кто так фильтры делает?
Проверка на 'Aloc', я в ужасе на кой черт проверять на дамми если GropEnumUnitsInRange\Rect не выделяет москитов, тока EnumOfPlayer может пикнуть москитов, остальное не пикает их, на то они и москиты...
Вот как выглядит нормальный фильтр без локалок и прочего
function EnemyFilter takes nothing returns boolean
    set bj_lastFilterUnit = GetFilterUnit( )
    return GetUnitState( bj_lastFilterUnit, UNIT_STATE_LIFE ) > 0.405 and IsUnitEnemy( bj_lastFilterUnit, bj_groupEnumOwningPlayer ) and not( IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MAGIC_IMMUNE ) or IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MECHANICAL ) or IsUnitInvulnerable( bj_lastFilterUnit ) )
endfunction
UnitDamageTargetEx - красиво но нафиг ненужно обводить в отдельную функцию с тучей аргументов + жутко неудобно, 100500 аргументов у функции и фиг знает за что какой от вечает, прямо так UnitDamageTarget, без отдельной функции.
Туча констант, тоже хорошо тока длят наработок, на деле ставь конкретные значения или юзай Difine vjass'a.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.

23

» WarCraft 3 / JNGP

Принятый ответ
Похожие вопросы:

ответ
Думаю, тебе стоит подробней описать проблему в этом ресурсе.
ответ
Я удалил MPQ Editor в папке bin, потому вылазила ошибка.
ответ
Можно обновить TESH и будет такой же.

23

» WarCraft 3 / Неуязвимость и ИИ

Похожие вопросы:

ответ
Не берите вы эти ульты для основы своих скиллов, они сделаны через одно место лиж бы работали в капмании, а там дальше хоть потоп.
Сделайте заклинание из канала, а юнитов вокруг делайте неуязвимыми.
ответ
Делал как-то спелл, для реализации которого пришлось понять как полностью блокировать любое количество урона.
ответ
8gabriel8, ты никак не отследишь тип атак и тип урона. Только мемхак или костыли, вроде у футмана абилка А - значит у него физический урон...
ответ
Steal nerves:
да. Сделать не зданием
здание + неуязвимость = убирает полосу
ответ
Ох, без Jass тут не обойтись. Тебе придётся резать константы урона относительно типу защиту. Создавать внутренние константы в скрипте, которым тебе придётся настраивать перебой защиты пол кол-ву наносимого урона. А так же вносить каждого юнита в БД. Вдобавок сделать структуру или массив с логикой получения урона от опр. типа атаки. В общем тут жесткий геморр. А так, с GUI тут особо не повоюешь. Ну иначе быть не может..

23

» WarCraft 3 / Строка

Похожие вопросы:

ответ
Эта функция может читать строки из текстовиков и wts файла строки своего региона, она слупочна. Вспомни сколько грузятся карты без оптимизации, как долго может открываться вкладка - задания.
ответ
Любая строка ограничена, 256 символов латиницы и вдвое меньше символов кирилицы насколько я помню.
Никак не лечится, краткость сестра таланта и все такое.
ответ
нет

23

» WarCraft 3 / Изменить освещение

Похожие вопросы:

ответ
Pandemic, вот тема похожего вопроса.
ответ
Это же Фелвуд? Возможно сбились настройки функции SetDayNightModels( ), которая прописана в main.
native SetDayNightModels takes string terrainDNCFile, string unitDNCFile returns nothing

23

» WarCraft 3 / Помогите с mdlvis

Похожие вопросы:

ответ
Про то, как править нормали, написано в FAQ, «Создание моделей», пункт 15. Советую попробовать.
ответ
Попробуй свернуть, а затем развернуть окно программы.
ответ
Свершылось... Заработало...
Вот оно.

Описание проверки:
  • проверил в редакторе, он просто вылетает при попытке настройки в РО;
  • переконвертировал в .mdl и осмотрел, все норм;
  • открыл в War3ModelEditore, удалил лишние текстуры, материалы, настроил анимации геосетов;
  • профит.
Если кто не верит, вот скрин.
ответ
В редакторе mdlvis нет такой функции.

23

» WarCraft 3 / Зеленый квадратик

Похожие вопросы:

ответ
ВНЕЗАПНО это делается одним действием: Игра - Enable/Disable Drag-Selection (настроенное на Disable drag-selection functionality (disable drag-selection box)).
ответ
ReplaceableTextures слитно пишется
ответ
Иконке нужна DISBTN иконка

23

» WarCraft 3 / Помогите с ботом!

Похожие вопросы:

ответ
ilsva, конечно не сработает
оно всех союзников игрока 1 заставляет считать всех компов союзниками и отдать им контроль над своими войсками.
тебе нужна функция PlayerGroup from Player и поменять порядок - сперва комп, потом игрок (а для надежности можно оба направления). Ну и проверку на то, комп ли игрок делать отдельно через if и условия на Player Controller и Player Slot Status.
ответ
не знаю даже поищи СТАРЕЙШИХ ИГРОКОВ У ВАРКРАФТА и попроси у них все карты которые они имеют
а дальше пороверь все карты и найди её если не найдёш значит она тебе приснилась)
ответ
Для ботов можно имитировать покупку предметов - отнимать деньги и давать предмет. Но это очень простой алгоритм для тупеньких ботов что будут сливаться по КД. Если хочешь слепить нечто, хотя бы изображающее сопротивление - простой покупки предметов никак не хватит. Нужно учитывать как можно больше игровых ситуаций и написать (триггерами) план действий в таких условиях. И тестить, тестить, тестить.
ответ
Все нашел!
Ошибся, вот она, которую я имел ввиду, версия мапы оказалось 3.6 100% она.
ответ
короче лаунчер при запуске палит версию вара и посылает на нужный серв
все
по другому просто никак не может быть
а то, сколько серверов держит один проект - дело уже другое
и с одного пк можно запустить сколько угодно серверов, при наличии рук и ресурсов

23

» WarCraft 3 / Защитный ИИ

Похожие вопросы:

ответ
Вобщем озарение как всегда пришло внезапно - понял что GetSpellAbilityUnit срабатывает на дамми и записывает в массив его, а не цель щита. Просто передвинул махинации с дамми в конец функции Actions. Всё отменно работает. Всем спасибо все свободны

23

» WarCraft 3 / Помогите с предметами!

Похожие вопросы:

ответ
Мда, кто так делает а? Требование лиж закрывает иконку, эффект то пассивка дает всегда, и пофигу её что там за требование..
Повышай броню так или делай другой эффект улучшения - Способность на уровень.
Сделай 2 уровня у твоих Рунических браслетов на 1 уровне сделай бонус брони 0 а на втором какой хочешь, потом с помощью апгрейда повышай уровень способности (а вы не знали что апгрейды могут повышать уровни способностям, изменять данные аур и так далее?)
ответ
Ну а в чем проблема? Ты собираешься сменить модель сундука на что то еще?
Настройки предмета ни о чем не говорят?
ответ
WiLian, то есть нужно, чтобы на земле лежала модель, которая выглядит, как пиктограмма предмета, так? Тогда нужна модель квадрата (64х64), которой нужно задать текстуру по пути пиктограммы предмета (ReplaceableTextures\CommandButtons\BTN... , как-то так). Но так придётся делать для каждого предмета. Я так сделал в своей карте: xgm.guru/p/zombie-z/defenders-map. Только у меня круглые картинки, я использовал прозрачное смешивание и чёрную модель круга.

Добрался до компьютера и сделал тебе модель. Для примера выбрал боевые когти.
Чтобы сделать другой предмет, нужно в программе Mdlvis поменять текстуру на нужную и сохранить как новую модель.
После импорта в редакторе объектов выбрать эту модель.
Вот так это выглядит в игре:
ответ
Делаешь способность пустышку на основе "Канал", далее делаешь триггер с событием "Юнит начал направлять способность" в условиях ставишь
свою способность, а в действиях условиями на наличие предметов делаешь крафт. Всё что я тут написал - это отсылка к темам которые можно самому найти.

23

» WarCraft 3 / Импорт моделей

Похожие вопросы:

ответ
не надо удалять war3imported\ надо правильно прописывать путь текстур, у каждой модели есть файлик ридми, и в нем написано по какому пути должны лежать текстуры напритмер ты импортнул модель и текстуру и у тебя получился путь war3imported\ 1.blp а в ридми написано textures\1.blp или просто 1.BLP правишь путь именно так как написано.
а если вдруг нету файлика ридми то модель всегда можно открыть блокном ----> поиск текста "blp" и тебе подстветиться среди символов строка как надо прописать текстуры
ответ
Для каждого дерева нужны три модели: обычная, неактивная (с названием Doodads\Terrain\AshenTree\AshenTree0S.mdx, например) и неактивная разрушенная (Doodads\Terrain\AshenTree\AshenTree0D.mdx). У неактивных моделей должна быть только одна анимация — Stand. У первой — только деревце, у второй — только пенёк, соответственно.
Когда с деревом никто не взаимодействует, отображаются неактивные модели. Ты их не заменил, потому такая вот фигня.
Как сделать полноценно работающие деревья с моделями, не заменяющими стандартные, я не знаю. Возможно, никак.
ответ
Manulli, на 1.26а есть способ обойти этот лимит с помощью мемхака но он очень сложный
а учитывая твои вопросы ты не сможешь это сделать
так что лучше делай как все
т.е. карта на стандартных моделях а mix заменяет их на твои
в результате те у кого есть mix будут видеть твои модели а те у кого нету будут видеть стандартные модели
ну и в игре сообщение выведи что можно скачать архив с крутыми моделями на таком то сайте
ответ
юзаю те же самые модели только собственного изменения, и все работает

23

» WarCraft 3 / Помогите c триггером :c

Похожие вопросы:

ответ
Ige, да о чем вы говорите. ИМХО, самое оптимальное предложение содержится в 3 комментарии.
И еще тут много лишних функций. Да и просто первый признак jass - отсутствие бж за исключением дебага( хоть мои слова кажется трепом и выпендрежем, но без чистого скрипта на нативах.... )
ответ
Dota_2015, с какого перепугу ATTACK_TYPE_MAGIC урон от заклинаний? у заклинаний тип атаки ATTACK_TYPE_NORMAL, а у тебя это магическая атака волшебниц да прочей шушеры из кампании, наносит 75% урона про героям и доп урон по тяжёлой броне, маг. резистами не режится ибо физический урон от атаки.
У всех заклинаний, да блин даже у долбаных мин гоблина - тип атаки ATTACK_TYPE_NORMAL.
ответ
Про области хз, вот именно их разве не через БД лучше, я же не знаю, как в создаваемой карте они называются - Пещера Тысячи Всхлипов или Пляж Огненных Уток...
Тут просто при входе в область писать ее при событии unit входит в область такую-то, легко же вроде даже на гуи...
А так атака ловится через GetUnitBaseDamage сложить с GetUnitGreenBonusDamage.
Скорость атаки через GetUnitAttackSpeed.
Броня через GetUnitArmor (я, правда, пока не мемхаковской пользуюсь, а другой, влом искать, но опытные мапмейкеры знают, если надо - спросить можно).
хпрег через GetUnitHPRegen + мб БД свое.
Мпрег через GetUnitMPRegen + мб БД свое.
Функции эти все тут github.com/DracoL1ch/WC3Memory/blob/master/war3map.j
По импорту мемхака все тут
Не так уж сложно.
Кому надо, в того мемхак в конце концов входит.

23

» WarCraft 3 / Утечка в функции

Похожие вопросы:

ответ
интережер это число
а null это объект
число не является объектом
следовательно их нельзя сравнивать/приравнивать
ответ
Вот как должен выглядеть полностью правильный триггер без утечек, единственная утечка создастся только при первом использовании, это я так понял переменная группы, ее обнулять нельзя, иначе скил будет работать только раз.
ответ
Steal nerves:
считаю глупостью заниматься такими вещами. Только чистый jass и понимание, где что утекает (и оптимизация кода).
Тут столько программистов и до сих пор вы не сделали универсальную библиотеку?
сам удивляюсь. Но помнится кто-то делал. Если честно, jass vjass знаю, и я таким не хочу заниматься, меня все устраивает. Даже, если это все будет, новички все равно будут вопросы задавать, инструкции для новичков faq не читают, поиск не юзают (столько вопросов задавали), учиться не хотят. Считаю это бесполезным занятием. Считаю лучше jass, просто менюшками не удобно пользоваться: в них бывает нет всех команд и функции, + это надо все искать по специальным разделам и др.
Суть в том, что это библиотека должна быть не только у тебя, но и у другого юзера. Если ты сделал новыми менюшками триггер, сохранил карту, передал другому человеку. К него должна быть по идее такая же библиотека, иначе не заработает, или не откроет, так как такой функции в редакторе у него нет.
ответ
ALL_Remove = false
чтотооченьважное
ALL_Remove = true
как сложно то было
ответ
после разложения костей юниты сами выгружаются из памяти
функция "wait" то же вызывает утечки
она не вызывает утечки, она сама по себе кривая и не подходит под большинство задач
если создать переменную "Point" типа "точка" и изначально задать ей положение центр области "Final", а потом обращаться уже к этой переменной "Point" в триггере событие "боевая единица входит в область "Start", действие "отдать приказ боевой единице следовать в "Point" , то новые точки создаваться не будут?
да
только в гуи еще и создание юнитов утекает тоже насколько я помню, надо тоже заранее точку делать
впринципе можно было бы обойтись одной точкой на все действия, но вам видимо пока рано